Method and apparatus for determining a cross slope of a surface

ABSTRACT

The present invention provides a method and apparatus for determining the cross slope created by a work implement on a work machine operating in an articulated or non-articulated manner. The method includes the steps of determining a position of the work implement, determining a direction of travel of the machine, and responsively determining the cross slope.

[0001] This is a continuation-in-part of U.S. application Ser. No. 09/342,997, filed Jun. 29, 1999.

TECHNICAL FIELD

[0002] This invention relates generally to an implement control system for a work machine and, more particularly, to a method and apparatus for determining a cross slope created by a work machine.

BACKGROUND ART

[0003] In one embodiment, the cross slope created by a work machine, such as a motor grader, may be described as the slope of a line lying on a surface path, such as a road, which is perpendicular to the direction of the path. Cutting an accurate cross slope into a land site is an important function for a work machine such as a motor grader; an accurate cross slope allows for proper run-off of water, and, if the unfinished is properly graded, pavement is more easily and accurately laid. Therefore, it would be advantageous to accurately determine the cross slope. The determined cross slope may be provided to the machine operator or compared to a desired cross slope in order to determine if the machine is creating the appropriate slope and to make adjustments to the blade position if a position error is occurring.

[0004] Some previous implementations of systems for determining cross slope utilize GPS and laser technologies to determine the position of the blade and the machine relative to the land site, thereby enabling a cross slope of cut of the blade to be determined. However, the required GPS and laser detection systems are expensive and are not easily implemented in remote sites, such as when cutting a road in a remote location.

[0005] In addition, other previous implementations of systems do not utilize GPS and laser technology but do use techniques which provide inaccurate information. For example, the angle of rotation of the blade may be used to ultimately determine the cross slope. Some systems determine an angle of rotation of the blade relative to the direction of travel of the blade using velocity transducers or radar guns for measuring the ground velocity in the direction of travel of the blade. However, these systems are expensive and have associated inaccuracies due, in part, to the fact that the accuracy decreases as the measured velocity approaches zero.

[0006] Further, other previous implementations did not account for the appropriate variables. Sensing too few parameters may lead to an inaccurate determination of cross slope.

[0007] The present invention is directed to overcoming one or more of the problems as set forth above.

DISCLOSURE OF THE INVENTION

[0008] In one aspect of the present invention, a method for determining a cross slope created by a work implement on a work machine is disclosed. The method includes the steps of determining a position of the work implement, determining a direction of travel of the machine, and determining the cross slope created by the machine.

[0009] In another aspect of the present invention, a method for determining a cross slope created by a work implement on a work machine is disclosed. The method includes the steps of sensing a plurality of machine parameters, sensing a plurality of work implement parameters, and determining the cross slope created by the machine.

[0010] In another aspect of the present invention, an apparatus for determining a cross slope created by a work machine having a work implement is disclosed. The apparatus includes a machine sensor system for sensing a plurality of machine parameters and responsively generate a plurality of machine parameter signals, a work implement sensor system adapted to determine a plurality of work implement parameters and responsively generate a plurality of work implement parameter signals, and a controller adapted to receive the machine parameter signals and the work implement parameter signals, and determine the cross slope created by the machine.

BRIEF DESCRIPTION OF THE DRAWINGS

[0011]FIG. 1a is a high level diagram of a first embodiment of an implement control system on a non-articulated work machine;

[0012]FIG. 1b is a high level diagram of a second embodiment of an implement control system on an articulated work machine;

[0013]FIG. 2 is a diagrammatic block diagram of a front portion of a motor grader;

[0014]FIG. 3 is a diagrammatic side view of the work implement;

[0015]FIG. 4 is a view of the apparatus for determining a cross slope created by the machine;

[0016]FIG. 5 is an example of blade roll angle and machine roll angle;

[0017]FIG. 6 is an example of angle of rotation of the blade;

[0018]FIG. 7a is an example of blade pitch angle;

[0019]FIG. 7b is an example of machine pitch angle;

[0020]FIG. 8 is an example of the direction of travel of the non-articulated machine;

[0021]FIG. 9 is an example of the direction of travel of the articulated work machine;

[0022]FIG. 10 is an example of the cross slope created by the machine;

[0023]FIG. 11 is an illustration of an alternative embodiment of the apparatus for determining a cross slope created by the machine;

[0024]FIG. 12 is an illustration of the method for determining a cross slope;

[0025]FIG. 13 is an illustration of the initial blade vector position;

[0026]FIG. 14a-e illustrates five aspects of the blade translations; and

[0027]FIG. 15 is an illustration of the cross slope plane.

BEST MODE FOR CARRYING OUT THE INVENTION

[0028] The present invention includes a method and apparatus for determining a cross slope created by a work implement on a work machine.

[0029] I. Assembly of the Work Machine

[0030] A work machine 108 includes a frame 106 upon which a work implement 104 is controllably movably mounted, as illustrated in FIG. 1a. In a first embodiment, the work implement is a blade 104, and the work machine 108 is a motor grader operating in a non-articulated manner.

[0031] In a second embodiment, as seen in FIG. 1b, the work machine 800 may be a motor grader operating in an articulated manner. The machine 800 has a frame 802, including a front frame 804 movably connected to a rear frame 806, the front frame 804 rotatable relative to the rear frame 806. The work implement 808, which is controllably movably mounted on the front frame 804, is identical to that found in the first embodiment, namely blade 104.

[0032] It is to be noted that other machines such as dozers, scrapers, compactors, pavers, profilers, and the like, equipped with suitable surface altering equipment, are equivalents and considered within the scope of the invention. In addition, other work implements may be used without departing from the spirit of the invention.

[0033] The blade 104, as shown in FIGS. 2 and 3, is movably connected to the frame 106 or 804 by a supporting mechanism 80, or drawbar. The supporting mechanism 80 preferably includes a circle drive mechanism 82 having a selectively actuatable rotary drive motor 84 for rotating a circle 85, and the blade 104 connected thereto about an elevational axis located at the center of the circle 85 in a known manner.

[0034] As best seen in FIG. 2, the machine 108 or 800 may include a first and second selectively actuatable fluid operated lift jacks 86 and 88 which are connected to and between the frame 106 or 804 and the drawbar 80. The first and second lift jacks 86 and 88 are extensibly movable between first and second spaced apart positions and elevationally move the blade 104 relative to the frame 106 or 804. Simultaneous extension of the lift jacks 86 and 88 lowers the blade 104 and simultaneous retraction of lift jacks 86 and 88 raises the blade 104. Extension or retraction of either the first and second lift jacks 86 or 88, or extension of one of the first and second lift jacks 86 or 88 and retraction of the other of the lift jacks 88 or 86 results in rolling of the blade 104 relative to the frame 106 or 804.

[0035] As shown in FIG. 3, a fluid operated tip jack 90 may be connected to and between the drawbar 80 and a bellcrank 92. The bellcrank 92 pivotally connects the blade 104 to the circle drive mechanism 82. The tip jack 90 is extensibly movable for tipping the bellcrank 92 about the pivotal connection. This results in tipping movement of the blade 104 in forward or rearward directions, as shown in phantom lines in FIG. 3, with the blade 104 oriented transversely of the vehicle frame 106 or 804. It should be noted that the terms blade tip and blade pitch are used interchangeably and have the same meaning.

[0036] In one embodiment, the machine 108 or 800 may include a machine sensor system 402 and a work implement sensor system 404 electrically connected to a controller 54, as illustrated in FIG. 4. The machine sensor system 402 is adapted to sense at least one machine parameter and responsively generate at least one machine parameter signal. The work implement sensor system 404 is adapted to sense at least one work implement parameter and responsively generate at least one work implement parameter signal.

[0037] As best seen in FIG. 3, the work implement sensor system 404 may include a pitch sensor assembly 94 provided for sensing the pitch angle of the blade 104. The pitch sensor assembly 94 may include any appropriate transducer capable of sensing the pitch of the blade 104. In the preferred embodiment the sensor assembly 94 measures the pitch of the blade with respect to the earth's gravity. The sensor assembly 94 may include a potentiometer, an encoder, a resolver, or the like. In the preferred embodiment, the sensor assembly 94 is connected to the circle 85; alternatively, the sensor assembly 94 may be connected to the bellcrank 92. The pitch sensor assembly 94 generates a pitch angle signal, which may be either analog or digital. Alternatively, the pitch sensor assembly 94 may sense the pitch of the blade 104 relative to the machine 108 or 800.

[0038] The work implement assembly 404 may include a roll sensor assembly 110 for sensing a roll angle of the blade 104. The roll sensor assembly 110 may include any appropriate transducer capable of sensing the rolled position of the blade 104. In an alternative embodiment, the roll sensor assembly 110 and the pitch sensor assembly 94 may be located on the machine frame 106 or 804 and the appropriate translations performed to determine the pitch and roll of the blade 104. Alternatively, the roll sensor assembly 110 may determine a roll angle of the blade relative to the machine.

[0039] The angle of rotation of the blade 104 relative to the drawbar 80 may be determined by monitoring the position of the circle drive mechanism 82. Alternatively, the work implement sensor system 404 may include a blade rotation sensor 96 for determining the rotation of the blade 104 relative to the drawbar 80.

[0040] The machine sensor system 402 may include a pitch sensor assembly 112, a roll sensor assembly 114, and an articulation angle sensor assembly 115. The pitch sensor assembly 112 and the roll sensor assembly -114 may be analogous to the pitch and roll sensor assemblies 94 and 110 respectively and may be located on the machine frame 106 or 802 to sense the pitch and roll angles of the machine 108 or 800. In an alternative embodiment, the machine pitch and roll angles may be derived from the sensed pitch and roll angles of the blade 104. The articulation angle sensor assembly may be located on the machine frame 802 to sense the rotation angle of the front frame 804 relative to the rear frame 806.

[0041] As illustrated in FIG. 5, using the roll sensors 110 and 114, the roll angle φ_(bs) of the blade 104 and the roll angle φ_(ms) of the frame 106 or 802 may be sensed relative to horizontal 502. The angle of rotation ψ_(b) of the blade 104 relative to the frame 106 or 804 may be sensed, as illustrated in FIG. 6. As illustrated in FIGS. 7a and 7 b, using the pitch sensor assemblies 94 and 112, the pitch angle θ_(ms) of the frame 106 or 802 and the pitch θ_(b) of the blade 104 may be sensed relative to horizontal 502. FIG. 7A illustrates an angle of rotation of the circle 85 to be zero degrees for exemplary purposes only. Other circle 85, or blade 104, rotations may be performed and measured accurately using the disclosed embodiment. As illustrated in FIG. 9, the articulation angle ψ_(m) may be sensed relative to the rear frame 806.

[0042] As illustrated in FIG. 8, in a first embodiment in which the work machine 108 is a non-articulated motor grader, the direction of travel, {right arrow over (i)}, of the machine 108 may be determined relative to the center axis of the frame 106. As illustrated in FIG. 9, in a second embodiment in which the machine 800 is an articulated motor grader, the direction of travel, {right arrow over (D)}, of the machine 800 is determined relative to the center axis of the rear frame 806.

[0043] In one embodiment, the cross slope, θ_(cs), created by a work machine, such as a motor grader, may be described as the slope of a line lying on a surface path, such as a road, which is perpendicular to the direction of the path, as illustrated in FIG. 10.

[0044] A controller 54 receives signals from the machine sensor system 402 and the work implement sensor system 404, as illustrated in FIG. 11. A microprocessor such as a Motorola 68HC11 may be used as the controller 54. However, other known microprocessors could be readily used without deviating from the scope of the present invention.

[0045] In the alternative embodiment, as illustrated in FIG. 11, the controller 54 may receive sensed signals from the pitch sensor assemblies 94 and 112 and the roll sensor assemblies 110 and 114. The controller 54 may also receive signals from at least one of a circle drive mechanism 82, a rotary drive motor 84, or a blade rotation sensor assembly 94 to determine the angle of rotation of the blade 104 relative to the drawbar 80.

[0046] The controller 54 determines a cross-slope in response to the sensed parameters. In one embodiment, the controller 54 receives an operator-initiated desired cross slope signal. For example, the operator may enter a desired cross-slope using a keypad (not shown) which delivers the appropriate signal to the controller 54. The actual cross slope may then be compared to the desired cross slope and a cross slope error responsively generated. The cross slope error may be used by the controller 54 to determine the necessary changes and commands that need to be delivered to either the blade 104, drawbar 80, or both to achieve the desired cross slope. The appropriate commands are then delivered by the controller 54 to adjust the cross slope created by the machine 108 or 800. The machine and work implement parameters are continuously sensed, enabling the cross slope to be continuously monitored and adjusted.

[0047] II. Determining the Cross Slope

[0048] In one embodiment, the cross slope may be determined as a function of (1) the direction of travel of the machine 108 or 800 and (2) the position of the blade 104. In the first embodiment of the present invention, the drawbar 80 is located symmetrically under the frame 106, the machine 108 is traveling in a straight line of motion, and there is not articulation of the machine 108.

[0049] In the second embodiment of the present invention, the drawbar 80 is located symmetrically under the front frame 804, the machine 800 is traveling in a straight line of motion, and there is articulation of the machine 800.

[0050] In both embodiments, for articulated and non-articulated machines, the method for determining the cross slope created by a work implement on a work machine includes the steps of determining a position of the work implement 104, determining a direction of travel of the machine 108 or 800, and determining the cross slope in response to the direction of travel and the work implement position.

[0051] A. Determine a Position of the Work Implement

[0052] In one embodiment, the position of the blade 104 may be determined in response to sensing machine and work implement parameters. Work implement parameters, such as the angle of rotation of the blade 104 relative to the machine 108 or 800 (ψ_(b)), the blade roll φ_(bs) and the blade pitch θ_(bs) may be sensed. In addition, machine parameters, such as the machine roll φ_(ms) and the machine pitch θ_(ms) may be sensed. Further, the roll and pitch of the drawbar 80 may be directly sensed by placing the appropriate sensors on the drawbars.

[0053]FIG. 12 illustrates a flow diagram of an alternative method for determining the current position of the blade 104. The current position of the blade 104 may be determined by determining an initial blade position vector 1002, translating the initial blade vector to achieve a theoretical current blade position 1004, and determining the current blade position by correlating the sensed parameters to the theoretical current blade position 1006. This method is appropriate for both articulated and non-articulated work machines.

[0054] 1. Determining an Initial Blade Position Vector

[0055] The initial blade vector {right arrow over (P)}_(B) ₀ represents a theoretical initial position of the blade 104. A local, or machine based, coordinate system may be defined as a three dimensional coordinate system established relative to the frame 106 or 802. In one embodiment, the local coordinates may be based on earth-based coordinates. The initial blade vector may be represented as:

{right arrow over (P)}_(B) ₀ ≡Initial blade vector=[1 0 0]^(T)

[0056] where the right hand tip 116 of the blade 104 is at {right arrow over (P)}_(B) ₀ and the center of the blade 104 is at the origin (0,0,0), as illustrated in FIG. 13. The current blade vector may be stated as:

{right arrow over (P)}_(B) ₀ =Final blade vector=└P_(B) _(x) P_(B) _(y) P_(B) _(z┘) ^(T)

[0057] 2. Achieving a Theoretical Correct Blade Position

[0058] A theoretical blade position vector may be determined by theoretically translating, or rotating, the machine 108 or 800, drawbar 80, and/or blade 104 through a sequence of maneuvers. That is, a sequence of theoretical work implement translations may be used to translate the implement from a first position, e.g., an initial position, to a second position, e.g., a current blade position. One example of the theoretical sequence of maneuvers is:

[0059] 1. Rotate the blade relative to the machine (ψ_(b));

[0060] 2. Roll the drawbar (φ_(d));

[0061] 3. Pitch the drawbar (θ_(d));

[0062] 4. Roll the mainframe (φ_(m)); and

[0063] 5. Pitch the mainframe (θ_(m))

[0064] The theoretical translation sequence is illustrated in FIGS. 14a-14 e. The rotational sequence yields a theoretical blade position: ${\overset{\rightharpoonup}{P}}_{B} = {\begin{bmatrix} P_{B_{x}} \\ P_{B_{y}} \\ P_{B_{z}} \end{bmatrix} = {{{{\left\lbrack {{Rot}\quad \_ \quad x\quad \left( \theta_{m} \right)} \right\rbrack \quad\left\lbrack {{Rot}\quad \_ \quad {y\left( \varphi_{m} \right)}} \right\rbrack}\quad\left\lbrack {{Rot}\quad \_ \quad x\quad \left( \theta_{d} \right)} \right\rbrack}\quad\left\lbrack {{Rot}\quad \_ \quad {y\left( \varphi_{d} \right)}} \right\rbrack} \times {\left\lbrack {{Rot}\quad \_ \quad {z\left( \psi_{b} \right)}} \right\rbrack \cdot {\overset{\rightharpoonup}{P}}_{Bo}}}}$

[0065] Where Rot_x(θ_(m)), Rot_y(φ_(m)), Rot_x(θ_(d)), Rot_y (φ_(d)), and Rot_z(ψ_(b)) are homogeneous transforms. For example, Rot_x(θ_(m)) may be determined to be: ${{Rot}\quad \_ \quad {x\left( \theta_{m} \right)}} = \begin{bmatrix} 1 & 0 & 0 \\ 0 & {\cos \left( \theta_{m} \right)} & {- {\sin \left( \theta_{m} \right)}} \\ 0 & {\sin \left( \theta_{m} \right)} & {\cos \quad \left( \theta_{m} \right)} \end{bmatrix}$

[0066] Homogenous transforms are well known in the art and each transform will not be elaborated on at this point.

[0067] The theoretical blade vector {right arrow over (P)}_(B) may be simplified by defining the overall transformation matrix as:

H _(b0) ^(b)=Rot_(—) x(θ_(m))Rot_(—) y(φ_(m))Rot_(—) x(θ_(d))Rot_(—) y(φ_(d))Rot_(—) z(ψ_(b))

[0068] The equation for the theoretical blade position simplifies to:

{right arrow over (P)} _(B) =H _(b0) ^(b) ·{right arrow over (P)} _(B) ₀

[0069] Where: $H_{bo}^{b} = {\begin{bmatrix} {h\left( {1,1} \right)} & {h\left( {1,2} \right)} & {h\left( {1,3} \right)} \\ {h\left( {2,1} \right)} & {h\left( {2,2} \right)} & {h\left( {2,3} \right)} \\ {h\left( {3,1} \right)} & {h\left( {3,2} \right)} & {h\left( {3,3} \right)} \end{bmatrix} = \begin{bmatrix} h_{1,1} & h_{1,2} & h_{1,3} \\ h_{2,1} & h_{2,2} & h_{2,3} \\ h_{3,1} & h_{3,2} & h_{3,3} \end{bmatrix}}$

[0070] The matrix elements may be determined by matrix algebra. For example:

h _(1,1)=[cos(φ_(m))cos(ψ_(b))]cos(φ_(d))−[sin(φ_(m))cos(ψ_(b))]cos(θ_(d))sin(φ_(d))+[sin(φ_(m))sin(ψ_(b))]sin(θ_(d))

[0071] Therefore, the theoretical current blade position vector may be represented as:

{right arrow over (P)}_(b)=<h_(1,1),h_(2,1),h_(3,1)>

[0072] 3. Determining the Current Blade Position

[0073] The actual current blade position may be determined by correlating the sensed parameters to the theoretical current blade position and determining the actual machine roll and pitch, the actual blade roll and pitch, and the blade rotation.

[0074] The variables φ_(m), φ_(d), θ_(m), θ_(d), and ψ_(b) are theoretical translation variables. The sensed variables may be correlated to the translation variables.

[0075] In the preferred embodiment, the actual machine roll may be determined by initializing a unit vector {circumflex over (ι)}_(x) _(m) which is representative of the roll and pitch of the machine starting in the direction î_(x), where î_(x) is the unit vector in the x-direction. The unit vector {circumflex over (ι)}_(x) _(m) may be rolled with respect to the Y-axis. Therefore, the actual machine roll may be determined by the following equation: ${\hat{i}}_{x_{m}} = {{{Rot}\quad \_ \quad {{Pitch}\left( \quad {{Rot}\quad \_ \quad {{Roll} \cdot {\hat{i}}_{x}}} \right)}} = {\begin{bmatrix} 1 & 0 & 0 \\ 0 & {\cos \left( \theta_{m} \right)} & {- {\sin \left( \theta_{m} \right)}} \\ 0 & {\sin \left( \theta_{m} \right)} & {\cos \quad \left( \theta_{m} \right)} \end{bmatrix} \times {\begin{bmatrix} {\cos \left( \varphi_{m} \right)} & 0 & {\sin \left( \varphi_{m} \right)} \\ 0 & 1 & 0 \\ {- {\sin \left( \varphi_{m} \right)}} & 0 & {\cos \left( \varphi_{m} \right)} \end{bmatrix}\quad\begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix}}}}$

[0076] To isolate the roll component, the dot product of the unit vector {circumflex over (ι)}_(x) _(m) in the vertical direction may be determined. The resulting actual machine roll equation is:

sin(φ_(m) _(s) )−cos(θ_(m))sin(φ_(m))=0

[0077] The actual machine pitch may be determined by initializing a unit vector, {circumflex over (ι)}_(y) _(m) , which is representative of the roll and pitch of the machine in the direction î_(y). The vector {circumflex over (ι)}_(y) _(m) is then rolled the amount indicated by the roll sensor and pitched by the amount indicated by the pitch sensor, resulting in:

{circumflex over (ι)}_(y) _(m) =Rot_Pitch(Rot_Roll( i _(y)))

[0078] The dot product of the unit vector in the vertical direction may be taken to determine the pitch component of the vector î_(y). The resulting actual machine pitch is:

sin(θ_(m) _(s) )=sin(θ_(m))

θ_(m)=θ_(m) _(s)

[0079] and, by substitution, the machine roll is: $\varphi_{m} = {\sin^{- 1}\left\lbrack \frac{\sin \left( {\varphi_{m}}_{s} \right)}{\cos \quad \left( \theta_{m_{s}} \right)} \right\rbrack}$

[0080] The actual blade roll, φ_(b), can be computed by determining the angle between the position of the blade 104 and the horizon 502. The blade roll with regard to the horizon (x-y plane) is given by:

sin(−φ_(b))=−[H _(b0) ^(b) ·{right arrow over (P)} _(B) ₀ ]·{circumflex over (ι)}_(z)

[0081] Measurement of the actual blade pitch can be computed by determining the angle between a normal blade vector, {right arrow over (N)}_(b), and the horizon.

{right arrow over (N)} _(B) =H _(b0) ^(b) ·{right arrow over (N)} _(B) ₀

[0082] where:

{right arrow over (N)}_(B) ₀ =[0 1 0]

[0083] The actual blade pitch, with regard to the horizon (x-y plane), may be given by:

sin(θ_(b))=−[H _(b0) ^(b) ·{right arrow over (N)} _(B) ₀ ]·{circumflex over (ι)}_(z)

[0084] The actual drawbar pitch and roll may also be determined. The following analysis is based on the assumption that there is no direct sensing of the drawbar 80 pitch and roll. If there is a direct sensing means, such as a roll or pitch sensor attached to the drawbar 80, then analysis analogous to the above determinations of machine roll and machine pitch may be used to determine drawbar roll and drawbar pitch.

[0085] If there is no direct sensing of the drawbar pitch θ_(d) and roll φ_(d), a numerical analysis approach for solving systems of non-linear equations, such as the Newton-Raphson Method, may be used to solve for them.

sin(φ_(b))=−[H _(b0) ^(b) ·{right arrow over (P)} _(B) ₀ ]·{right arrow over (ι)}_(z)

ƒ₁(ψ_(b),θ_(b),φ_(b),θ_(m),φ_(m),θ_(d)φ_(d))=0

sin (−φ_(b))=−[H _(b0) ^(b) ·{right arrow over (N)} _(B) ₀ ]·{right arrow over (ι)}_(z)

ƒ₂(ψ_(b),θ_(b),φ_(b),θ_(m),φ_(m),θ_(d),φ_(d))=0

ƒ₁(θ_(d),φ_(d))=0

ƒ₂(θ_(d),φ_(d))=0

[0086] Solving for θ_(d) and φ_(d) via the Newton-Raphson Method: ${F\left( x_{k} \right)} = \begin{bmatrix} {f_{1}\left( {x_{1},x_{2}} \right)} \\ {f_{2}\left( {x_{1},x_{2}} \right)} \end{bmatrix}$ $x_{k} = {\begin{bmatrix} x_{1} \\ x_{2} \end{bmatrix} = \begin{bmatrix} \theta_{d} \\ \varphi_{d} \end{bmatrix}}$ x_(k + 1) = x_(k) − J_(k)⁻¹ ⋅ F(x_(k))

[0087] where J_(k) represents a Jacobian matrix. $J^{- 1} = \frac{\begin{bmatrix} \frac{\partial f_{2}}{\partial\varphi_{d}} & \frac{- {\partial f_{1}}}{\partial\varphi_{d}} \\ \frac{- {\partial f_{2}}}{\partial\theta_{d}} & \frac{\partial f_{1}}{\partial\theta_{d}} \end{bmatrix}}{\Delta \quad J}$ Where: ${\Delta \quad J} = {{\left( \frac{\partial f_{1}}{\partial\theta_{d}} \right)\quad \left( \frac{\partial f_{2}}{\partial\varphi_{d}} \right)} - {\left( \frac{\partial f_{1}}{\partial\varphi_{d}} \right)\quad \left( \frac{\partial f_{2}}{\partial\theta_{d}} \right)}}$ $x = \begin{bmatrix} \theta_{d} \\ \varphi_{d} \end{bmatrix}$

$x_{0} = \begin{bmatrix} \theta_{b} \\ \varphi_{b} \end{bmatrix}$

[0088] For an initial estimate of blade position, the initial drawbar pitch and roll may be assumed to be equal to the initial blade pitch and roll. This assumption provides an initial estimate that may be modified. Alternatively, the last drawbar pitch and roll calculated may be used.

[0089] Therefore, the actual current blade position may be determined using:

{right arrow over (P)} _(B) _(x) =h _(1,1) =g ₁(ψ_(b),θ_(m),φ_(m),θ_(d),φ_(d))

{right arrow over (P)} _(B) _(y) =h _(2,1) =g ₂(ψ_(b),θ_(m),φ_(m),θ_(d),φ_(d)), and

{right arrow over (P)} _(B) _(z) =h _(3,1) =g ₃(ψ_(b),θ_(m),φ_(m),θ_(d),φ_(d))

[0090] Where g_(x)(ψ_(b),θ_(m),φ_(m),θ_(d),φ_(d)) represents the functional analysis illustrated above.

[0091] B. Determining a Direction of Travel of the Machine

[0092] The current blade position may be used in conjunction with the direction of travel of the machine to determine the cross slope, and the direction of travel of the machine may be represented by a direction path vector {right arrow over (D)}_(t).

[0093] 1. Non-articulated Work Machines

[0094] In the first embodiment, the machine 108 is operating in a non-articulated manner. Therefore, the direction path vector {right arrow over (D)}_(t) is aligned with the frame 106 and is affected only by the pitch of the machine 108. Therefore, the direction path vector may be given by the following equation:

{right arrow over (D)}_(t)=<0,cos(θ_(m)),sin(θ_(m))>^(T)

[0095] 2. Articulated Work Machines

[0096] In the second embodiment, the machine 800 is operating in an articulated manner. Therefore, the direction path vector {right arrow over (D)}_(t) is aligned with the rear frame 806, as most easily seen in FIG. 9. Because {right arrow over (D)}_(t) is not aligned with the front frame 804, machine pitch (θ_(m)) machine roll (φ_(m)), and the articulation angle (ψ_(m)) affect the direction vector {right arrow over (D)}_(t). Therefore, the initial direction path vector is given by the following equation:

{right arrow over (D)} _(t) _(o) =−sin(ψ_(m))î _(xm)+cos(ψ_(m))î_(ym)

[0097] After adding the machine pitch and roll, the direction vector is expressed as:

{right arrow over (D)} _(t) =[rot _(—) x(θ_(m))][rot _(—) y(φ_(m))]{right arrow over (D)}_(t) _(o)

[0098] which simplifies to:

{right arrow over (D)} _(t) =<d _(tx) ,d _(ty) ,d _(tz)>

[0099] where

[0100] d_(tx)=−cos(φ_(m))sin(ψ_(m))

[0101] d_(ty)=−sin(θ_(m))sin(φ_(m))sin(ψ_(m))+cos(θ_(m))cos(ψ_(m))

[0102] d_(tz)=cos(θ_(m))sin(φ_(m))sin(ψ_(m))+sin(θ_(m))cos(ψ_(m))

[0103] C. Determining the Cross Slope

[0104] The cross slope is a function of the blade position vector and the direction of travel vector:

CrossSlope=ƒ({right arrow over (D)} _(t) ,{right arrow over (P)} _(b))

[0105] The cross slope, θ_(cs), may be represented as a vertical measurement that is perpendicular to the direction of travel and is measured with respect to the horizon, as illustrated in FIG. 10. The blade's path as it passed through the cross section of the cut plane may be determined.

[0106] 1. Non-Articulated Work Machines

[0107] In the first embodiment, in which the work machine 108 is not articulated, the cross slope plane may be illustrated as the x_(m)-z plane, as shown in FIG. 15. A normal vector that crosses through the cross slope cut plane 1402 may be determined. The normal vector may be determined by taking the cross product of two known vectors that lie within the plane, such as {circumflex over (ι)}_(x) _(m) , which contains the point {right arrow over (P)}_(B) _(o) , and {circumflex over (ι)}_(z), which contains the point (0,0,0) and is part of the earth coordinate system. Therefore:

{right arrow over (N)} _(x) _(s) ={circumflex over (ι)}_(x) _(m) ×{circumflex over (ι)}_(z)

[0108] Where:

{circumflex over (ι)}_(x) _(m)=Rot_Pitch(Rot_(—Roll({circumflex over (ι)}) _(x)))

[0109] Resulting in ${\therefore{\overset{\rightharpoonup}{N}}_{x_{s}}} = \begin{bmatrix} {{\sin \left( \theta_{m} \right)}{\sin \left( \varphi_{m} \right)}} \\ {{- \cos}\quad \left( i_{m} \right)} \\ 0 \end{bmatrix}$

[0110] Therefore, the plane equation containing the point x₀, y₀, z₀=(0,0,0): is [sin   (θ_(m))sin (φ  m)] ⋅ x + [−cos   (φ  m)]y = 0

[0111] Preferably, the machine follows straight line motion, where no angular variables are changing. Therefore, the right blade tip follows a line l: ${{I_{r}:x} = P_{b_{x}}},{\frac{y - P_{b_{y}}}{\cos \quad \left( \theta_{m} \right)} = \frac{z - P_{b_{z}}}{\sin \quad \left( \theta_{m} \right)}}$

[0112] The cross slope may then be determined by projecting {right arrow over (P)}_(B) back or forward in time, along the line l 1406, until it intersects the cross slope plane, as illustrated in FIG. 15. The point of intersection (x*, y*, z*) 1404 is: ${x^{*} = P_{b_{x}}},{y^{*} = \frac{\sin \quad {\left( \theta_{m} \right) \cdot \sin}\quad {\left( \varphi_{m} \right) \cdot x^{*}}}{\cos \quad \left( \varphi_{m} \right)}},{z^{*} = {{{- {\tan \left( \theta_{m} \right)}} \cdot P_{b_{y}}} + P_{b_{z}}}}$

[0113] The x,y component is the measure of this point along the {circumflex over (ι)}_(x) _(m) direction. Therefore, the measurement of the x,y component is:

r={square root}{square root over (x*²+y*²)}

[0114] The cross slope created by the work implement 104 of a machine 108 may then be defined as: ${{Cross}\quad {Slope}} = {\frac{- z^{*}}{\sqrt{x^{*2} + y^{*2}}} = \frac{\Delta \quad z}{\Delta \quad r}}$

[0115] 2. Articulated Work Machines

[0116] In the second embodiment, in which the work machine 800 is articulated, the cross slope may also be illustrated as the x_(m)-z plane, as shown in FIG. 15. A normal vector that crosses through the cross slope cut plane 1402 may be determined by taking two known vectors that lie within the plane and calculating the cross product of those vectors. One of the known vectors {circumflex over (ι)}_(z) contains the point (0,0,0) and lies within the earth coordinate system. The other known vector {circumflex over (ι)}_(cs) contains the point {right arrow over (P)}_(B) ₀ . ${\overset{\rightarrow}{N}}_{c} = {{{\overset{\rightarrow}{i}}_{c} \times {\hat{i}}_{c}} = {\begin{matrix} i_{x} & 0 & 0 \\ i_{cx} & i_{cy} & i_{cz} \\ 0 & 0 & 1 \end{matrix}}}$

[0117] where

{right arrow over (I)} _(c)=[rot_(—) x(θ_(m))][rot _(—) y(φ_(m))]{right arrow over (I)} _(c) ₀

[0118] is perpendicular to the direction of travel {right arrow over (D)}_(t) after machine pitch and roll. This results in:

{right arrow over (I)}_(c)=<(i _(cx,) _(cy,) _(cz)>

[0119] where

[0120] i_(cx)cos(φ_(m))cos(ψ_(m))

[0121] i_(cy)=sin(θ_(m))sin(φ_(m))cos(ψ_(m))+cos(θ_(m))sin(ψ_(m))

[0122] i_(cz)=−cos(θ_(m))sin(φ_(m))cos(ψ_(m))+sin(θ_(m))sin(ψ_(m))

[0123] The cross product of {right arrow over (I)}_(c) and {circumflex over (ι)}_(z) can be performed, yielding the normal vector to the cut plane. ${\overset{\rightarrow}{N}}_{c} = {\begin{bmatrix} n_{x} \\ n_{y} \\ n_{z} \end{bmatrix} = \begin{bmatrix} {{\cos \quad \left( \theta_{m} \right)\sin \quad \left( \psi_{m} \right)} + {\sin \quad \left( \theta_{m} \right)\sin \quad \left( \varphi_{m} \right)\cos \quad \left( \psi_{m} \right)}} \\ {{- \cos}\quad \left( \varphi_{m} \right)\cos \quad \left( \psi_{m} \right)} \\ 0 \end{bmatrix}}$

[0124] The projection of the blade tip P_(b), along the line l_(t) 1406, onto the cut plane P_(c), occurs at the point (x*,y*,z*) 1404, as seen in FIG. 15. Solving for x, y , and z as a system, the projection line, which the right blade tip follows, is expressed as: ${l_{t}:\frac{x^{*} - P_{bx}}{d_{tx}}} = {\frac{y^{*} - P_{by}}{d_{ty}} = \frac{z^{*} - P_{bz}}{d_{tz}}}$

[0125] and the cut plane is expressed as:

P _(c) :n _(x)(x*−0)+n _(y)(y*−0)+n _(z)(z*−0)=0

[0126] The cross slope may be determined by projecting {right arrow over (P)}_(B) back or forward in time, along the line l 1406, until it intersects the cross slope plane, as seen in FIG. 15. The point of intersection (x* ,y ,z) 1404 is: $y^{*} = \frac{{{- n_{x}}a_{0}} - {n_{z}b_{0}}}{{n_{x}a_{1}} + {n_{y}b_{1}} + n_{y}}$ ${{x^{*}\underset{\underset{a_{1}}{}}{\left\lbrack \frac{d_{tx}}{d_{ty}} \right\rbrack}y^{*}} + \underset{\underset{a_{0}}{}}{\left\lbrack {P_{bx} - {\frac{d_{tx}}{d_{ty}}P_{by}}} \right\rbrack}} = {{a_{1}y^{*}} + a_{0}}$ ${{z^{*}\underset{\underset{b_{1}}{}}{\left\lbrack \frac{d_{tz}}{d_{ty}} \right\rbrack}y^{*}} + \underset{\underset{b_{0}}{}}{\left\lbrack {P_{bz} - {\frac{d_{tz}}{d_{ty}}P_{by}}} \right\rbrack}} = {{b_{1}y^{*}} + b_{0}}$

[0127] The x,y component is the measure of this point in the î_(cs) direction. Therefore, the measurement of the x,y component is:

r+{square root}{square root over (x*²+y*²)}

[0128] The cross slope created by the blade 104 of the machine 800 may then be defined as: $X_{z} = {\frac{\Delta \quad Z}{\Delta \quad R} = \frac{- z^{*}}{\sqrt{\left( x^{*} \right)^{2} + \left( y^{*} \right)^{2}}}}$

[0129] Industrial Applicability

[0130] The present invention provides a method and apparatus for determining the cross slope created by a work implement on a work machine. In a first embodiment, the method includes the steps of determining a position of the work implement, determining a direction of travel of the machine, and determining a cross slope in response to the direction of travel and the work implement position.

[0131] In a second embodiment, a plurality of machine parameters, such as the roll of the machine, and work implement parameters, such as the angle of rotation of the work implement relative to the machine, are used to determine the position of the work implement.

[0132] In a third embodiment, the actual cross slope is determined and then compared to a desired cross slope. The desired cross slope may be determined in response to either an operator input or a program that is providing automated control of some or all of the grading functions of the motor grader. The machine 108 or 800 and/or the blade 104 may be controlled in response to the desired and actual cross slope. For example, if an error exists between the actual and desired cross slope, the implement commands may be determined which will bring the actual cross slope to within a threshold of the desired cross slope. The threshold may be determined based on the desired accuracy of the system.

[0133] Other aspects, objects, and features of the present invention can be obtained from a study of the drawings, the disclosure, and the appended claims. 

What is claimed is:
 1. A method for determining a cross slope created by a work implement on a work machine, the work machine comprised of movably connected front and rear frames, said work implement movably connected to at least one of said frames, comprising the steps of: sensing a plurality of machine parameters, said machine parameters including at least a roll of said work machine, a pitch of said work machine, and an articulation angle; sensing at least one work implement parameter, said work parameter including at least an angle of rotation of said work implement relative to said work machine; determining a position of said work implement in response to said work machine parameters and said at least one work implement parameter; determining a direction of travel of at least one of said frames of said work machine; and determining a cross slope in response to said at least one direction of travel and said work implement position.
 2. The method, as set forth in claim 1 , wherein the step of sensing said at least one work implement parameter includes the step of determining a pitch of said work implement relative to said work machine.
 3. The method, as set forth in claim 2 , wherein the step of sensing said at least one work implement parameter includes the step of determining a roll of said work implement relative to said work machine.
 4. The method, as set forth in claim 1 , wherein the step of sensing said at least one work implement parameter includes the steps of: determining a pitch of said work implement relative to the earth's gravitational field; and determining a roll of said work implement relative to the earth's gravitational field.
 5. The method, as set forth in claim 4 , wherein the step of determining a direction of travel includes the step of correlating said pitch of said work machine, said roll of said work machine, and said articulation angle to the direction of travel of at least one of said frames.
 6. The method, as set forth in claim 5 , including the steps of: comparing said cross slope with a desired cross slope; and determining a cross slope error in response to said comparison.
 7. The method, as set forth in claim 6 , including the step of controlling said work implement in response to said cross slope error.
 8. The method, as set forth in claim 7 , wherein the step of determining said work implement position includes the step of: determining said work implement position in response to a sequence of theoretical work implement translations from a first work implement position to a second work implement position.
 9. The method, as set forth in claim 8 , wherein said sequence of theoretical work implement translations includes the steps of: translating an angle of rotation of said work implement to account for rotation of said work implement; translating said work implement to account for a roll of said work implement; and translating said work implement to account for a pitch of said work implement.
 10. The method, as set forth in claim 8 , including the step of correlating said sensed machine parameters and said at least one sensed work implement parameter to variables associated with theoretical work implement translations.
 11. The method, as set forth in claim 1 , wherein said step of determining a direction of travel includes the step of correlating said pitch of said work machine, said roll of said work machine, and said articulation angle to the direction of travel of at least one of said frames.
 12. A method for determining a cross slope created by a work implement on a work machine, the work machine comprised of movably connected front and rear frames, said work implement movably connected to at least one of said frames, comprising the steps of: sensing a plurality of machine parameters, said machine parameters including a roll of said work machine, a pitch of said work machine, and an articulation angle; sensing a plurality of work implement parameters, said work implement parameters including an angle of rotation of said work implement relative to said work machine; and determining said cross slope in response to said machine parameters and said work implement parameters including said angle of rotation of said work implement.
 13. The method, as set forth in claim 12 , wherein said step of determining said cross slope includes the steps of: determining a direction of travel of at least one of said frames in response to said roll of said work machine, said pitch of said work machine, and said articulation angle; and determining said cross slope in response to said direction of travel.
 14. The method, as set forth in claim 12 , wherein the step of sensing a plurality of work implement parameters includes the steps of: determining a pitch of the work implement relative to the earth's gravitational field; and determining a roll of the work implement relative to the earth's gravitational field.
 15. The method, as set forth in claim 14 , wherein the step of sensing a plurality of work implement parameters includes the steps of: determining a pitch of the work implement relative to the machine; and determining a roll of the work implement relative to the machine.
 16. The method, as set forth in claim 15 , including the step of determining a direction of said machine, wherein said cross slope is determined in response to said direction of said machine, said machine parameters, said work implement parameters, and said angle of rotation of said work implement.
 17. The method, as set forth in claim 16 , wherein said step of determining said direction of said machine includes the step of: determining said direction of said machine in response to said roll of said machine, said pitch of said machine, and said articulation angle.
 18. The method, as set forth in claim 16 , wherein the step of determining said work implement position includes the steps of: determining said work implement position in response to a sequence of theoretical work implement translations from a first work implement position to a second work implement position.
 19. The method, as set forth in claim 18 , wherein said sequence of theoretical work implement translations includes the steps of: translating said work implement angle of rotation to account for said work implement rotation; translating said work implement to account for said work implement roll; and translating said work implement to account for said work implement pitch.
 20. An apparatus configured to determine a cross slope created by a work machine having a work implement, the work machine including front and rear frames movably connected, the work implement being movably connected to at least one of said frames of the work machine, comprising: a machine sensor system configured to sense a plurality of machine parameters and responsively generate a plurality of machine parameter signals; a work implement sensor system configured to determine a plurality of work implement parameters and responsively generate a plurality of work implement parameter signals; and a controller configured to receive said machine parameter signals and said work implement parameter signals, determine a direction of travel of the machine in response to said machine and said work implement parameters, determine a position of said work implement in response to said machine and said work implement parameters, and determine the cross slope in response to said machine direction of travel and said work implement position.
 21. The apparatus, as set forth in claim 20 , wherein said machine sensor system includes: a roll sensor configured to determine a roll of the machine; a pitch sensor configured to determine a pitch of the machine; and an articulation angle sensor to determine the articulation of the machine.
 22. The apparatus, as set forth in claim 21 , wherein said controller determines said direction of travel of said machine in response to said roll of the machine, said pitch of the machine and said articulation angle.
 23. The apparatus, as set forth in claim 22 , wherein said work implement sensor system includes: a roll sensor configured to determine a roll of the work implement relative to the machine; and a pitch sensor configured to determine a pitch of the work implement relative to the machine.
 24. The apparatus, as set forth in claim 23 , wherein said work implement sensor system includes: a roll sensor configured to determine a roll of the work implement relative to the earth's gravitational field; and a pitch sensor configured to determine a pitch of the work implement relative to the earth's gravitational field.
 25. The apparatus, as set forth in claim 24 , wherein said controller determines an angle of rotation of said work implement relative to the machine, and wherein said controller determines cross slope in response to said machine parameters, said work implement parameters and said angle of rotation.
 26. The apparatus, as set forth in claim 24 , wherein said work implement sensor system includes a rotation sensor configured to sense an angle of rotation of the work implement relative to the machine and responsively generate an angle of rotation signal, said work implement parameter signals including said angle of rotation signal.
 27. A method for determining a cross slope created by a work implement on a work machine, the work machine including front and rear frames movably connected, the work implement being movably connected to at least one of said frames of the work machine, comprising the steps of: determining a position of said work implement; determining a direction of travel of at least one of said frames; establishing an angle of rotation of the work implement relative to the machine; and determining a cross slope in response to said direction of travel of at least one of said frames and said work implement position.
 28. The method, as set forth in claim 27 , including the steps of: sensing a plurality of machine parameters, said machine parameters including a roll of said machine, a pitch of said machine, and an articulation angle of said machine; sensing at least one work implement parameter, said at least one work implement parameter including an implement angle of rotation; and wherein, the step of determining said work implement position includes the step of determining said work implement position in response to said machine parameters and said at least one work implement parameter, including said implement angle of rotation.
 29. The method, as set forth in claim 28 , wherein the step of determining said at least one work implement parameter includes the step of determining a pitch of said work implement relative to said machine.
 30. The method, as set forth in claim 29 , wherein the step of determining said direction of travel includes the step of: determining said direction of at least one of said frames in response to said roll of said machine, said pitch of said machine, and said articulation angle.
 31. The method, as set forth in claim 27 , including the steps of: comparing said cross slope with a desired cross slope; and determining a cross slope error in response to said comparison.
 32. The method, as set forth in claim 31 , including the step of controlling said work implement in response to said cross slope error.
 33. An apparatus configured to determine a cross slope created by a work machine having a work implement, the machine having front and rear frames movably connected, the work implement being movably connected to at least one of said frames of the work machine, comprising: a machine sensor system configured to sense a plurality of machine parameters, including a roll of said machine, a pitch of said machine, and an articulation of said machine, and responsively generate a plurality of machine parameter signals, said signals corresponding to said roll of said machine, said pitch of said machine, and said articulation angle of said machine; a work implement sensor system configured to determine a plurality of work implement parameters, one of said work implement parameters being an angle of rotation of the work implement relative to the machine, and responsively generate a plurality of work implement parameter signals; and a controller configured to receive said machine parameter signals and said work implement parameter signals, determine at least one of a direction of travel of the machine and a direction of travel of the work implement in response to said roll of said machine, said pitch of said machine, said articulation angle of said machine, and said work implement parameters, including said angle of rotation, determine a position of said work implement in response to said machine and said work implement parameters, and determine the cross slope in response to said at least one of said direction of travel of said machine and said direction of travel of said work implement and said work implement position. 